package com.battle.service.service.in;

import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.organization.*;
import com.battle.pojo.vo.organization.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


/**
 * 【描 述】：组织架构服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface OrganizationService {

    /**
     * 创建组织架构
     *
     * @param param
     */
    void createOrganization(CreateOrganizationParam param);

    /**
     * 修改组织架构
     *
     * @param param
     */
    void editOrganization(EditOrganizationParam param);

    /**
     * 移除组织架构
     *
     * @param id
     */
    void removeOrganization(Long id);

    /**
     * 启动/禁用组织架构
     *
     * @param id
     */
    void enabledOrganization(Long id);

    /**
     * 获取组织架构详情
     *
     * @param id
     * @return
     */
    GetOrganizationVo getOrganization(Long id);

    /**
     * 获取组织架构列表
     *
     * @param param
     * @return
     */
    PageResult<GetOrganizationListVo> getOrganizationList(GetOrganizationListParam param);

    /**
     * 获取组织架构下拉列表
     *
     * @param param
     * @return
     */
    List<GetOrganizationDownListVo> getOrganizationDownList(GetOrganizationDownListParam param);

    /**
     * 获取组织架构树形
     * @return
     */
    List<GetOrganizationTreeListVo> getOrganizationTreeList();

    /**
     * 导入组织架构
     * @param file
     */
    void importOrganization(MultipartFile file);
}